package cc.iotkit.manager.service;

import cc.iotkit.manager.dto.bo.map.MapFenceBo;
import cc.iotkit.manager.dto.bo.map.MapTrackBo;

import java.util.List;
import java.util.Map;

public interface IMapService {

    boolean uploadPoints(String tid,int trid,List<Map<String,Object>> points);

    /***
     * 轨迹查询与纠偏
     * http://lbsyun.baidu.com/index.php?title=yingyan/api/v3/trackprocess
     * @return
     */
     Map<String,Object> getTrack(MapTrackBo bo);

    /**
     * 获取用户今日实际公里数
     * @return
     */
    Map<String,Object> getTodayUserActualDistance();

    /**
     * 创建终端
     * @return
     */
    String createTerminal(String deviceId);

    /**
     * 创建轨迹
     * @param tid
     * @return
     */
    int createTrace(String deviceId,String tid);

    /**
     * 查询行驶距离
     * @return
     */
    Float getDistance(Long startTime,Long endTime,String tid,int trid);

    boolean createFenceCircle(MapFenceBo bo);

    boolean updateFenceCircle(MapFenceBo bo);
    boolean deleteFence(String  gfids);
    /**
     *增加监测对象
     * @param gfid 围栏id
     * @param tids 终端id
     * @return
     */
    boolean bindFenceTerminal(Integer gfid, String tids);

    /**
     *删除监测对象
     * @param gfid 围栏id
     * @param tids 终端id
     * @return
     */
    boolean unbindFenceTerminal(Integer gfid, String tids);

    /**
     * 查询指定坐标与围栏关系
     * @param location x,y坐标
     * @param gfids  围栏的唯一标识，支持一次传入多个，以","分割；
     * @return
     */
     List<Map<String,Object>> findFenceStatus(String location, String gfids);

    /***
     * 获取智能硬件定位
     * @param params
     * @return
     */
    Map<String,Object> getHWLocation(Map<String,Object> params);

    /***
     * 查询某 设备 的实时位置，支持纠偏
     * @return
     */
    Map<String,Object> getLatestPoint(String tid,int trid);
}
